import type { RouteRecordRaw } from "vue-router"

/**
 * 自动生成路由配置
 * 根据 views 目录结构自动生成路由
 */
export function generateRoutes(): RouteRecordRaw[] {
  // 使用 Vite 的 import.meta.glob 动态导入所有 views 下的 index.vue 文件
  const modules = import.meta.glob('@/views/*/index.vue')
  
  const routes: RouteRecordRaw[] = []
  
  // 遍历所有模块路径
  Object.keys(modules).forEach(path => {
    // 从路径中提取目录名 例: '@/views/home/index.vue' -> 'home'
    const match = path.match(/\/views\/([^/]+)\/index\.vue$/)
    if (match) {
      const dirName = match[1]
      
      // 生成路由名称 (首字母大写)
      const routeName = dirName.charAt(0).toUpperCase() + dirName.slice(1)
      
      // 生成路由路径
      const routePath = `/${dirName}`
      
      // 创建路由配置
      const route: RouteRecordRaw = {
        path: routePath,
        name: routeName,
        component: modules[path] // 动态导入组件
      }
      
      routes.push(route)
    }
  })
  
  // 按路径排序，确保路由顺序一致
  routes.sort((a, b) => (a.path || '').localeCompare(b.path || ''))
  
  return routes
}

/**
 * 获取完整的路由配置（包含 Layout）
 */
export function getRouteConfig(): RouteRecordRaw[] {
  const childRoutes = generateRoutes()
  
  return [
    {
      path: "/",
      name: "Layout",
      redirect: "/home",
      component: () => import("@/layout/index.vue"),
      children: childRoutes
    }
  ]
}
